/*
 * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.bean.model;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yami.shop.common.serializer.json.EmojiJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

@Data
@TableName("tz_user")
public class User implements Serializable {
    private static final long serialVersionUID = 2090714647038636896L;
    /**
     * ID
     */
    @TableId(type = IdType.INPUT)
    private String userId;

    /**
     * 用户昵称
     */
    @JsonSerialize(using =  EmojiJsonSerializer.class)
    private String nickName;

    /**
     * 上级用户昵称
     */
    @ApiModelProperty(value = "上级用户昵称")
    @TableField(exist = false)
    private String uppName;


    /**
     * 真实姓名
     */

    private String realName;


    /**
     * 用户邮箱
     */

    private String userMail;

    /**
     * 登录密码
     */

    private String loginPassword;

    /**
     * 支付密码
     */

    private String payPassword;

    /**
     * 手机号码
     */

    private String userMobile;

    /**
     * 修改时间
     */

    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date modifyTime;

    /**
     * 注册时间
     */

    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date userRegtime;

    /**
     * 注册IP
     */

    private String userRegip;

    /**
     * 最后登录时间
     */

    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date userLasttime;

    /**
     * 最后登录IP
     */

    private String userLastip;

    /**
     * 备注
     */

    private String userMemo;

    /**
     * M(男) or F(女)
     */
    private String sex;

    /**
     * 例如：2009-11-27
     */

    @DateTimeFormat(pattern="yyyy-MM-dd")
    private String birthDate;

    /**
     * 头像图片路径
     */
    private String pic;

    /**
     * 状态 1 正常 0 无效 2待审核
     */
    private Integer status;

    /**
     * 积分
     */
    private Double score;

    @ApiModelProperty(value = "用户年龄")
    private Integer age;

    @ApiModelProperty(value = "自我介绍")
    private String introduction;

    @ApiModelProperty(value = "是否是vip 0不是 1是")
    private Integer isVip;

    @ApiModelProperty(value = "0是未充值过VIP，1为首充VIP，大于1为充值过一次以上VIP用户")
    private Integer isFirstVip;

    @ApiModelProperty(value = "0不是新人优惠vip，1为新人优惠VIP")
    private Integer isDiscountVip;

    @ApiModelProperty(value = "用户标识 1魅力女生")
    private Integer userTitle;

    @ApiModelProperty(value = "vip结束日期")
    private Date vipEndTime;

    @ApiModelProperty(value = "vip开始时间")
    private Date vipStartTime;

    @ApiModelProperty(value = "是否在线 0不在 1在")
    private Integer isOnline;

    @ApiModelProperty(value = "用户主页展示图片 逗号连接")
    private String showPics;

    @ApiModelProperty(value = "用户标签名称 逗号连接")
    private String userLabels;

    @ApiModelProperty(value = "人脸照片路径")
    private String identityPic;


    /**
     * 省ID
     */
    private Long provinceId;
    /**
     * 省
     */
    private String province;
    /**
     * 城市
     */
    private String city;
    /**
     * 城市ID
     */
    private Long cityId;
    /**
     * 区
     */
    private String area;
    /**
     * 区ID
     */
    private Long areaId;

    /**
     * 推荐人id
     */
    private String recommendUserId;

    @ApiModelProperty(value = "身高cm")
    private Integer height;
    @ApiModelProperty(value = "体重 斤")
    private Double weight;
    @ApiModelProperty(value = "微信号")
    private String wxId;

    @ApiModelProperty(value = "钻石数量")
    private Integer diamondNum;

    @ApiModelProperty(value = "喜欢我的人数")
    private Integer likeMeCount;

    @ApiModelProperty(value = "今日解锁剩余")
    private Integer todayUnlockSurplus;

    @ApiModelProperty(value = "爱好 逗号连接")
    private String hobby;

    @ApiModelProperty(value = "注册好礼结束时间")
    private Date regGiftEndtime;

    @ApiModelProperty(value = "注册好礼剩余数量")
    private Integer regGiftNum;

    @ApiModelProperty(value = "个人邀请码")
    private String invitatioCode;

    @ApiModelProperty(value = "上级邀请码")
    private String uppInvitatioCode;

    @ApiModelProperty(value = "邀请好礼结束时间")
    private Date invGiftEndtime;

    @ApiModelProperty(value = "邀请好礼剩余数量")
    private Integer invGiftNum;

    @ApiModelProperty(value = "邀请人首充赠送的礼物结束时间")
    private Date invPleEndtime;

    @ApiModelProperty(value = "邀请人首充赠送的礼物数量")
    private Integer invPleNum;

    @ApiModelProperty(value = "二维码")
    private String qrCode;

    @ApiModelProperty(value = "经度")
    private Double lng;

    @ApiModelProperty(value = "维度")
    private Double lat;

    @ApiModelProperty(value = "心跳时间")
    private Date heartbeat;

    @ApiModelProperty(value = "钱包")
    private Double wallet;

    @ApiModelProperty(value = "人脸照片路径")
    private Double identity_pic;

    @ApiModelProperty(value = "微信登入唯一表示")
    private String openid;

    @ApiModelProperty(value = "新人优惠剩余数量[0,1] 大于0时，显示新人优惠套餐")
    private Integer discount;

}
